package com.xueyi.workflow.domain.dto;

import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.util.Map;

/**
 * 获取下一步节点请求对象
 *
 * @author xueyi
 * @date 2024-07-03
 */
@Data
public class GetNextNodesRequest {

    /**
     * 任务ID（任务处理模式）
     */
    private String taskId;

    /**
     * 流程实例ID（任务处理模式）
     */
    private String processInstanceId;

    /**
     * 流程ID（发起模式）
     */
    private String processId;

    /**
     * 流程Key（发起模式）
     */
    private String processKey;

    /**
     * 表单数据（用于计算网关条件）
     */
    private Map<String, Object> formData;

    /**
     * 判断是否为发起模式
     */
    public boolean isStartMode() {
        return (processId != null || processKey != null) && taskId == null;
    }

    /**
     * 判断是否为任务处理模式
     */
    public boolean isTaskMode() {
        return taskId != null && processInstanceId != null;
    }
} 